Method and apparatus for a common cluster model for configuring, managing, and operating different clustering technologies in a data center

ABSTRACT

A method, apparatus, and computer instructions are provided for a common cluster model for configuring, managing, and operating different clustering technologies in a data center. The common cluster model supports peer cluster domains and management server cluster domains. Each cluster domain may have one or more cluster nodes. For each cluster domains, one or more cluster resources may be defined. These resources may depend on one another and may be grouped into a resource group. A set of cluster domain and cluster resources logical device operations are provided to configure, manage, and operate cluster domains and its associated resources.

BACKGROUND OF THE INVENTION

1. Technical Field

The present invention relates to a data processing system. Inparticular, the present invention relates to modeling clusteringtechnologies in a data center. Still more particularly, the presentinvention relates to providing a common cluster model for configuring,managing, and operating different clustering technologies in a datacenter.

2. Description of Related Art

In a data center, a variety of clustering technologies may be used toconfigure, manage, and operate clusters. Examples of these clusteringtechnologies include Veritas™ clustering server, which is available fromVeritas Software Corporation, Tivoli® System Automation (TSA) forMultiplatforms and WebSphere, which is available from InternationalBusiness Machines Corporation, and Microsoft® cluster server availablefrom Microsoft Corporation.

These clustering technologies each have their own way to configure,manage, and operate clusters. For example, Veritas clustering serverprovides a configuration definition template for configuring a Veritascluster. TSA cluster uses a pre-camp policy and a CLI cluster command toconfigure the TSA cluster. Microsoft cluster server uses configurationuser interface to configure the cluster and encapsulate all detailconfiguration steps from the users. The WebSphere cluster uses adeployment manager server to configure a WebSphere Application Server(WAS) cluster by calling a WAS internal application programminginterface (API). With the variety of ways to configure, manage, andoperate cluster, no mechanism is present that allows users to easilyinteract with different clustering technologies.

In addition, these clustering technologies each have their own datamodel for modeling the cluster. When encountering different clusteringtechnologies, users have to have knowledge of different data modelsassociated with each of these clustering technologies. For example, ifboth a WAS cluster and a TSA high availability cluster are used in adata center, a user must handle these two clustering technologies andtheir data models separately.

Therefore, it would be advantageous to have an improved method thatoperates different clustering technologies and understands differentdata models.

SUMMARY OF THE INVENTION

The present invention provides a method, an apparatus, and computerinstructions for a common cluster model for configuring, managing, andoperating different clustering technologies in a data center. The commoncluster model defines a cluster domain that includes at least onecluster node for a clustering technology, associates at least onecluster resource with the cluster domain or the at least one clusternode, and associates at least one property with the cluster domain orthe at least one cluster resource.

BRIEF DESCRIPTION OF THE DRAWINGS

The novel features believed characteristic of the invention are setforth in the appended claims. The invention itself, however, as well asa preferred mode of use, further objectives and advantages thereof, willbest be understood by reference to the following detailed description ofan illustrative embodiment when read in conjunction with theaccompanying drawings, wherein:

FIG. 1 depicts a pictorial representation of a network of dataprocessing systems in which an illustrative embodiment of the presentinvention may be implemented;

FIG. 2 is a block diagram of a data processing system that may beimplemented as a server, in accordance with an illustrative embodimentof the present invention;

FIG. 3 is a block diagram of a data processing system in which anillustrative embodiment of the present invention may be implemented;

FIG. 4 is a diagram illustrating an exemplary data center, in accordancewith an illustrative embodiment of the present invention;

FIG. 5 is a diagram illustrating a known method to configure, manage,and operate a cluster;

FIG. 6 is a diagram illustrating known relationships between differentclustering technologies;

FIG. 7 is a diagram illustrating relationships between administratorsand different clustering technologies in accordance with an illustrativeembodiment of the present invention;

FIG. 8 is a diagram illustrating an exemplary common cluster domainmodel in accordance with an illustrative embodiment of the presentinvention;

FIG. 9 is a diagram illustrating exemplary cluster domain logical deviceoperations and cluster resource logical device operations in accordancewith an illustrative embodiment of the present invention; and

FIG. 10 is a diagram illustrating exemplary usage of common clustermodel in FIG. 8 to model a high availability cluster in accordance withan illustrative embodiment of the present invention.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT

With reference now to the figures, FIG. 1 depicts a pictorialrepresentation of a network of data processing systems in which anillustrative embodiment of the present invention may be implemented.Network data processing system 100 is a network of computers in whichthe present invention may be implemented. Network data processing system100 contains a network 102, which is the medium used to providecommunications links between various devices and computers connectedtogether within network data processing system 100. Network 102 mayinclude connections, such as wire, wireless communication links, orfiber optic cables.

In the depicted example, server 104 is connected to network 102 alongwith storage unit 106. In addition, clients 108, 110, and 112 areconnected to network 102. These clients 108, 110, and 112 may be, forexample, personal computers or network computers. In the depictedexample, server 104 provides data, such as boot files, operating systemimages, and applications to clients 108-112. Clients 108, 110, and 112are clients to server 104. Network data processing system 100 mayinclude additional servers, clients, and other devices not shown. In thedepicted example, network data processing system 100 is the Internetwith network 102 representing a worldwide collection of networks andgateways that use the Transmission Control Protocol/Internet Protocol(TCP/IP) suite of protocols to communicate with one another. At theheart of the Internet is a backbone of high-speed data communicationlines between major nodes or host computers, consisting of thousands ofcommercial, government, educational and other computer systems thatroute data and messages. Of course, network data processing system 100also may be implemented as a number of different types of networks, suchas for example, an intranet, a local area network (LAN), or a wide areanetwork (WAN). FIG. 1 is intended as an example, and not as anarchitectural limitation for the present invention.

Referring to FIG. 2, a block diagram of a data processing system thatmay be implemented as a server, such as server 104 in FIG. 1, isdepicted in accordance with a preferred embodiment of the presentinvention. Data processing system 200 may be a symmetric multiprocessor(SMP) system including a plurality of processors 202 and 204 connectedto system bus 206. Alternatively, a single processor system may beemployed. Also connected to system bus 206 is memory controller/cache208, which provides an interface to local memory 209. I/O Bus Bridge 210is connected to system bus 206 and provides an interface to I/O bus 212.Memory controller/cache 208 and I/O Bus Bridge 210 may be integrated asdepicted.

Peripheral component interconnect (PCI) bus bridge 214 connected to I/Obus 212 provides an interface to PCI local bus 216. A number of modemsmay be connected to PCI local bus 216. Typical PCI bus implementationswill support four PCI expansion slots or add-in connectors.Communications links to clients 108-112 in FIG. 1 may be providedthrough modem 218 and network adapter 220 connected to PCI local bus 216through add-in connectors.

Additional PCI bus bridges 222 and 224 provide interfaces for additionalPCI local buses 226 and 228, from which additional modems or networkadapters may be supported. In this manner, data processing system 200allows connections to multiple network computers. A memory-mappedgraphics adapter 230 and hard disk 232 may also be connected to I/O bus212 as depicted, either directly or indirectly.

Those of ordinary skill in the art will appreciate that the hardwaredepicted in FIG. 2 may vary. For example, other peripheral devices, suchas optical disk drives and the like, also may be used in addition to orin place of the hardware depicted. The depicted example is not meant toimply architectural limitations with respect to the present invention.

The data processing system depicted in FIG. 2 may be, for example, anIBM eServer pseries system, a product of International Business MachinesCorporation in Armonk, N.Y., running the Advanced Interactive Executive(AIX) operating system or the LINUX operating system.

With reference now to FIG. 3, a block diagram illustrating a dataprocessing system is depicted in which the present invention may beimplemented. Data processing system 300 is an example of a clientcomputer. Data processing system 300 employs a peripheral componentinterconnect (PCI) local bus architecture. Although the depicted exampleemploys a PCI bus, other bus architectures such as Accelerated GraphicsPort (AGP) and Industry Standard Architecture (ISA) may be used.Processor 302 and main memory 304 are connected to PCI local bus 306through PCI Bridge 308. PCI Bridge 308 also may include an integratedmemory controller and cache memory for processor 302. Additionalconnections to PCI local bus 306 may be made through direct componentinterconnection or through add-in boards. In the depicted example, localarea network (LAN) adapter 310, small computer system interface (SCSI)host bus adapter 312, and expansion bus interface 314 are connected toPCI local bus 306 by direct component connection. In contrast, audioadapter 316, graphics adapter 318, and audio/video adapter 319 areconnected to PCI local bus 306 by add-in boards inserted into expansionslots. Expansion bus interface 314 provides a connection for a keyboardand mouse adapter 320, modem 322, and additional memory 324. SCSI hostbus adapter 312 provides a connection for hard disk drive 326, tapedrive 328, and CD-ROM drive 330. Typical PCI local bus implementationswill support three or four PCI expansion slots or add-in connectors.

An operating system runs on processor 302 and is used to coordinate andprovide control of various components within data processing system 300in FIG. 3. The operating system may be a commercially availableoperating system, such as Windows xP, which is available from MicrosoftCorporation. An object oriented programming system such as Java may runin conjunction with the operating system and provide calls to theoperating system from Java programs or applications executing on dataprocessing system 300. “Java” is a trademark of Sun Microsystems, Inc.Instructions for the operating system, the object-oriented programmingsystem, and applications or programs are located on storage devices,such as hard disk drive 326, and may be loaded into main memory 304 forexecution by processor 302.

Those of ordinary skill in the art will appreciate that the hardware inFIG. 3 may vary depending on the implementation. Other internal hardwareor peripheral devices, such as flash read-only memory (ROM), equivalentnonvolatile memory, or optical disk drives and the like, may be used inaddition to or in place of the hardware depicted in FIG. 3. Also, theprocesses of the present invention may be applied to a multiprocessordata processing system.

As another example, data processing system 300 may be a stand-alonesystem configured to be bootable without relying on some type of networkcommunication interfaces As a further example, data processing system300 may be a personal digital assistant (PDA) device, which isconfigured with ROM and/or flash ROM in order to provide non-volatilememory for storing operating system files and/or user-generated data.

The depicted example in FIG. 3 and above-described examples are notmeant to imply architectural limitations. For example, data processingsystem 300 also may be a notebook computer or hand held computer inaddition to taking the form of a PDA. Data processing system 300 alsomay be a kiosk or a Web appliance.

Turning now to FIG. 4, a diagram illustrating an exemplary data centeris depicted, in accordance with a preferred embodiment of the presentinvention. As shown in FIG. 4, in this illustrative example, data center400 includes resources, such as, customer 402, server 404, Virtual LocalArea Network (VLAN) 406, subnet 408, router 410, switch 412, softwareproducts 416, load balancer 418, and data container 420.

Customer 402 may be, for example, a client or an administrator who usesa data processing system, such as data processing system 300 in FIG. 3.Server 404 may be implemented as a data processing system, such as dataprocessing system 200 in FIG. 2. Server 404 may also be implemented asan application server, which hosts Web services, or other types ofservers. Router 410 and switch 412 facilitate communications betweendifferent devices. VLAN 406 is a network of computers that behave as ifthey are connected to the same wire even though they may actually bephysically located on different segments of a local area network. Subnet408 is a portion of a network, which may be a physically independentnetwork segment and shares a network address with other portions of thenetwork.

Software products 416 are applications that may be deployed to a clientor a server. Load balancer 418 spreads traffic among multiple systemssuch that no single system is overwhelmed. Load balancer 418 is normallyimplemented as software running on a data processing system. Datacontainer 420 may be a database, such as DB2 Universal Database, aproduct available from International Business Machines Corporation.

Data center 400, as depicted in FIG. 4, is presented for purposes ofillustrating the present invention. Other resources, such as, forexample, cluster of servers and switch port, also may be included indata center 400. The mechanism of the present invention provides acommon cluster model for configuring, managing and operating clusters,such as clusters of servers 404, in a data centers, such as data center400. The processes of the present invention may be performed by aprocessing unit comprising one or more processors, such as processor 302in FIG. 3, using computer implemented instructions, which may be locatedin a memory such as, for example, main memory 304, memory 324, or in oneor more peripheral devices 326 and 330.

Turning now to FIG. 5, a diagram illustrating a known method toconfigure, manage, and operate a cluster is depicted. As shown in FIG.5, currently, administrator 500 configures, manages, and operatesdifferent clustering technologies in different ways. For example,administrator configures Veritas cluster 502 and its resources usingVeritas configuration files and agents.

In another example, administrator 500 configures Microsoft cluster 504and its resources using MS cluster configuration user interface orWindows scripts. Similarly, administrator 500 uses WebSphere API toconfigure WAS cluster 506. In yet another example, administrator 500configures TSA HA cluster 508 and its pre-camp policy using TSA specificcommand, such as CLI.

Turning now to FIG. 6, a diagram illustrating known relationshipsbetween different clustering technologies is depicted. As shown in FIG.6, administrator 600 currently has to handle different clusteringtechnologies 602 individually, since clustering technologies 602 areincompatible with one another. Therefore, a need exists for a commonmodel that handles different clustering technologies.

In an illustrative embodiment, the present invention provides suchcommon model, known as common cluster model, which configures, manages,and operates a cluster regardless of which clustering technology thecluster employs. The common cluster model allows a user to interact withthe vendor specific clustering technology without knowledge of thespecific clustering technology or its data model.

The common cluster model is a common interface between the user and aplurality of logical device operations. The logical device operationsmap the common cluster model into specific device driver workflows whichinteract with various vendor specific clustering technologies. Thus, thecommon cluster model provides a higher level of abstraction for clusteradministrators to configure, manage, and operate the data center wheredifferent clustering technologies are applied.

Turning now to FIG. 7, a diagram illustrating relationships betweenadministrators and different clustering technologies is depicted inaccordance with an illustrative embodiment of the present invention. Asshown in FIG. 7, administrator 700 is different from administrator 500and 600 in FIGS. 5 and 6 in that administrator 700 interacts with commoncluster model 702 instead of vendor specific clustering technologies,such as Veritas cluster 704, WAS cluster 706, Microsoft cluster 708, andTSA HA cluster 710.

With common cluster model 702 provided by the present invention,administrator 700 may invoke logical device operations 712 via graphicaluser interface 714. Logical device operations 712 allow administrator700 to configure, manage, and operate vendor specific clusteringtechnologies 704-710 using device driver workflows 716.

Examples of operations administrator 700 may perform via common clustermodel 702 include configuring a cluster, adding node to a cluster,removing a node from a cluster, starting or stopping a cluster, startingor stopping a cluster node, creating and deleting a cluster resource,creating and deleting a resource group, synchronizing cluster orresource states, starting or stopping a cluster resource, updating aresource, and creating or updating resource dependencies.

In an illustrative embodiment, common cluster model 702 models two maintypes of cluster domains: management server domain and peer domain. Acluster domain is a virtual collection of physical or logical elementsthat provide services to a client as a single unit.

Peer domain has no management node that manages all nodes in the clusterdomain. Thus, each node in the domain is a peer and can access eachother. Peer domain nodes are identical and there are no rankings betweenthe nodes. Cluster operations may be run on any one of the nodes in thepeer cluster domain. Examples of a peer domain include TSA, Veritas, andHigh Availability Cluster Multiprocessing for AIX 5L (HACMP) availablefrom International Business Machines Corporation.

Management cluster domain, on the other hand, has one or more managementnodes that manage peer nodes in the management server cluster domain.Peer nodes in the management cluster domain cannot access each other.All cluster operations are run by the management nodes. Examples ofmanagement server domain include WebSphere cluster and an open sourceproject known as Extreme Cluster Administration Toolkit (xCat).

Turning now to FIG. 8, a diagram illustrating an exemplary commoncluster domain model is depicted in accordance with an illustrativeembodiment of the present invention. As shown in FIG. 8, common clustermodel 800 is able to handle both types of cluster domains. For example,cluster domain 802 includes logical elements known as cluster nodes,represented by Dcm_object 804. There may be one or more cluster nodemembers in cluster domain 802. An application tier may specifyassociated cluster domain 802 used. Device driver or individualworkflows may be associated with cluster domain 802 and software modelsmay be associated with cluster domain 802 for configuring the cluster.

Cluster nodes, represented by Dcm_object 804, are logicalrepresentations of servers, such as H/A clusters, or software instances,such as WAS cluster, since a single system may be running two softwareinstances simultaneously. Cluster node types 803 may be either a peernode or a management node if the cluster domain is management serverdomain. Common cluster model 800 provides the flexibility to supportboth types of clusters. For each cluster node, desired state 807 may bespecified in order to determine what state cluster domain 802 should beafter it is configured, for example, online. In addition, observed state805 may also be specified, which indicates the current state of clusterdomain 802, for example, offline.

In addition, cluster nodes in cluster domain 802 may be located indifferent physical systems, for example, a WAS cluster, or on a singlesystem, for example, WAS 2-server instances running on a single machine.Furthermore, cluster domain 802 may be nested 806, meaning that acluster domain may include one or more sub-cluster domains. However, asub-cluster domain may only have exactly one parent cluster domain.

In order to configure, manage, and operate cluster domain 802, a set ofcluster service operations 808 may be used. For example, configoperation 810 may be used to lookup nodes belonging to a cluster domainand its existing resources and then define those resources. For eachcluster domain 802, domain level cluster resources 812 and clusterdomain properties 814 may be defined. These illustrative cluster serviceoperations are also referred to as cluster domain operations.

In these illustrative examples, cluster resource 812 is a specializedsoftware resource 816. Cluster resource 812 may be either a domain levelcluster resource or node level cluster resource. Cluster resource 812includes cluster resource type 818, desired state, observed state, anddisplay name. Cluster resource type 818 may be an application, an IP, ashare disk, etc. An example of an application is ipconfig.

Start/stop dependencies or relationships 820 may also be associatedamong cluster resources 812. For example, a dependency may be associatedto resource A and resource B, which defines that resource A startsbefore resource B. Examples of resource dependencies include storagemappings and database instances. Each cluster resource 816 may includeone or more resource attributes, represented by Dcm-properties 814.Examples of resource attributes include ip addresses, name masks, etc.

In addition, cluster resource 812 may be a member of resource group 822or may be aggregated to form failover cluster resource 824, whichconsists of two or more redundancy of cluster resource 812, for a highavailability cluster or a peer domain cluster. Just like cluster domain802, resource group 822 may also associate with device driver orindividual workflows. A set of cluster resource operations 826 may beused to configure, manage or operate cluster resource 812. For example,create dependency operation 828 may be used to create relationship 820between two cluster resources.

Resource group 822 may be nested 830, meaning that a resource group maycontain another resource group. However, each subgroup may only haveexactly one parent group. Each resource group 822 may define groupattributes and group dependencies among different cluster resourcegroups. These group attributes may be referred to as resource groupproperties. Each resource group 822 includes one or more clusterresources 812. These resources may be located in the same system ordifferent systems. In addition, resource group 822 may also associatedevice driver and individual workflows. Furthermore, a set of clusterresource group logical operations can be used to operate resource group822.

In order to map common cluster model 800 into a vendor specific datamodel, logical device operations, such as logical device operations 712in FIG. 7, are used. As described above, common cluster model 800provides cluster service operations 808 to map between common clusterdomain 802 and vendor specific domain model. For each vendor specificclustering technology, a workflow implementation is provided andassociated with logical device operations 712 in FIG. 7, and a mappingbetween common cluster model 800 and vendor specific domain mode isgenerated automatically.

For example, when config operation 810 in cluster service operations 808is invoked, logical device operations 712 in FIG. 7 are invoked to parsea resource template to obtain vendor specific attributes for a clusterresource, and populate dcm_properties 814 for a cluster resource 812 incommon cluster model 800. Thus, administrators may use cluster serviceoperations 808 to configure, manage, and operate cluster domains and itsassociated resources.

Turning now to FIG. 9, a diagram illustrating exemplary cluster domainlogical device operations and cluster resource logical device operationsis depicted in accordance with an illustrative embodiment of the presentinvention. As shown in FIG. 9, cluster domain logical device operations900 are provided by the present invention to configure, manage, andoperate cluster domains. Cluster domain logical operations 900 includeConfig 902 for configuring a cluster domain, AddNode 904 that adds acluster node to a cluster domain, Start 906 to start a cluster domain,Stop 908 to stop a cluster domain, StartNode 910 to start a node in acluster domain, StopNode 912 to stop a node in a cluster domain, Remove914 to remove a cluster domain, RemoveNode 916 to remove a node in acluster domain, CreateResource 918 to create a cluster resource in acluster domain, CreateResourceGroup 920 to create a resource group in acluster domain, UpdateDomainStatus 922 to update a cluster domainobserved state, and UpdateNodeStatus 924 to update a cluster node'sobserved state. These illustrative cluster domain logical operations mayalso be referred to as cluster domain operations.

Also shown in FIG. 9, cluster resource logical device operations 930 areprovided by the present invention to configure, manage, and operatecluster resources within a cluster domain. Cluster resource logicaldevice operations 930 include Start 932 to start a cluster resource,Stop 934 to stop a cluster resource, AddGroupMember 936 to add resourcesto a resource group, CreateDependency 938 to create dependencies betweenresources, Update 940 to update a cluster resource's attributes, andRemoveResource 942 to remove a cluster resource. These illustrativecluster resource logical operations may also be referred to as clusterresource operations.

Turning now to FIG. 10, a diagram illustrating exemplary usage of commoncluster model 800 in FIG. 8 to model a high availability cluster isdepicted in accordance with an illustrative embodiment of the presentinvention. As shown in FIG. 10, TSA DB/2 H/A cluster domain 1002 may bemodeled as cluster domain 802 in FIG. 8.

TSA DB/2 H/A cluster domain 1002 includes two cluster nodes: DB/2 Node 11004 and DB/2 Node 2 1006, which may be modeled using Dcm_object 804 inFIG. 8. In this example, DB/2 Node 1 1004 includes a number of resourcesaccessible by a user. For example, nts server resources 1008, nts serverIP 1010, DB/2 instance 1012, DB/2 Instance Mount Point 1014, and DB/2Instance IP 1016. These resources are currently online.

A dependency may be defined between two resources. For example, DB/2instance 1012 may depend on DB/2 Instance Mount Point 1014. Thus, DB2instance 1012 may not start until after DB/2 Instance Mount Point 1014is completed. This dependency may be modeled by using relationship 820in FIG. 8.

Similar to DB/2 Node 1 1004, DB/2 Node 2 1006 also includes a number ofresources, including DB/2 Instance IP 1018, DB/2 Instance Mount Point1020, DB/2 Instance 1022, nts server IP 1024, and nts server resources1026. However, unlike the resources in DB/2 Node 1 1004, these resourcesare offline or on standby. With cluster domain 900 and cluster resourcelogical device operations 930 in FIG. 9, administrator may use easilychange the configuration of DB/2 Node 1 1004 and DB/2 Node 2 1006 toplace these resources online.

Furthermore, resources from DB/2 Node 1 1004 and DB/2 Node 2 1006 may begrouped into a number of resource groups and placed online. For example,nts server resources 1008 and nts server IP 1010 from DB/2 Node 1 1004and nts server IP 1024 and nts server resources 1026 from DB/2 Node 21006 may be grouped into nts resource group 1030, while DB/2 instance1012, DB/2 Instance Mount Point 1014, DB/2 Instance IP 1016 from DB/2Node 1 1004 and DB/2 Instance IP 1018, DB/2 Instance Mount Point 1020,and DB/2 Instance 1022 from DB/2 Node 2 1006 may be grouped into DB/2resource group 1032. Nts resource group 1030 and DB/2 resource group1032 may then be placed online using cluster resource logical deviceoperations.

In summary, a common cluster model is provided by the present inventionthat understands vendor specific clustering technologies and its datamodel. Administrators may use the common cluster model and its logicaldevice operations to configure, manage, and operate clusters, clusternodes, and their resources without the knowledge of vendor specificclustering technologies. Administrators are no longer required to learneach vendor specific data model and operations in order to configurevendor specific clustering technologies. As a result, administrators maysave significant time and efforts in configuring, managing, andoperating clusters.

It is important to note that while the present invention has beendescribed in the context of a fully functioning data processing system,those of ordinary skill in the art will appreciate that the processes ofthe present invention are capable of being distributed in the form of acomputer usable medium of instructions and a variety of forms and thatembodiments of the present invention applies equally regardless of theparticular type of signal bearing media actually used to carry out thedistribution. Examples of computer usable media include recordable-typemedia such a floppy disc, a hard disk drive, a RAM, and CD-ROMs andtransmission-type media such as digital and analog communications links.

The description of the embodiments of the present invention have beenpresented for purposes of illustration and description, but is notintended to be exhaustive or limited to the invention in the formdisclosed. Many modifications and variations will be apparent to thoseof ordinary skill in the art. The embodiment was chosen and described inorder to best explain the principles of the invention, the practicalapplication, and to enable others of ordinary skill in the art tounderstand the invention for various embodiments with variousmodifications as are suited to the particular use contemplated.

1. A method in a data processing system for a common cluster model forconfiguring, managing, and operating different clustering technologiesin a data center, the method comprising: defining a cluster domain for aclustering technology, wherein the cluster domain includes at least onecluster node; associating at least one cluster resource with one of thecluster domain and the at least one cluster node; and associating atleast one property with one of the cluster domain and the at least onecluster resource.
 2. The method of claim 1, further comprising: defininga set of cluster domain operations, wherein the set of cluster domainoperations operates on the at least cluster domain and the at least onecluster node; and defining a set of cluster resource operations, whereinthe set of cluster resource operations operates on the at least onecluster resource and the at least one property.
 3. The method of claim2, further comprising: associating one or more of the at least onecluster resource with a resource group; and defining a set of resourcegroup properties for the resource group, wherein the set of clusterresource operations operates on the resource group and the set ofresource group properties.
 4. The method of claim 1, wherein the clusterdomain is one of a peer cluster domain and a management server clusterdomain, and wherein the at least one cluster node is one of a server anda software instance.
 5. The method of claim 1, wherein the clusterdomain includes another cluster domain.
 6. The method of claim 1,wherein the cluster domain and the at least one cluster node includes anobserved state and a desired state, wherein the observed state indicatesa current state.
 7. The method of claim 1, wherein the at least onecluster resource is a type of software resource, and wherein the atleast one cluster resource includes a relationship to another clusterresource.
 8. The method of claim 1, wherein the at least one clusterresource is aggregated to form a failover cluster resource for a highavailability cluster, wherein the failover cluster resource includesredundancy of the at least one cluster resource.
 9. The method of claim3, wherein the resource group includes another resource group, andwherein the resource group depends on another resource group.
 10. Themethod of claim 1, wherein the at least one clustering resource islocated in one of a same data processing system and a different dataprocessing systems.
 11. The method of claim 3, further comprising:associating individual workflows and device driver with one of thecluster domain, the at least one cluster resource, and the resourcegroup, wherein the individual workflows and device driver interact withthe different clustering technologies.
 12. The method of claim 2,wherein the set of cluster domain operations includes a configoperation, wherein the config operation looks up the at least onecluster node associated with the cluster domain and at least one clusterresource associated with the at least cluster node.
 13. The method ofclaim 2, wherein the set of cluster domain operations includes a startoperation, a stop operation, an add node operation, a remove nodeoperation, a start node operation, a stop node operation, a createresource operation, and a create resource group operation, an updatedomain status operation, and an update node status operation.
 14. Themethod of claim 2, wherein the set of cluster resource operationsinclude a start operation, a stop operation, an add group memberoperation, a create dependency operation, an update operation, and aremove resource operation.
 15. A data processing system comprising: abus; a memory connected to a bus, wherein a set of instructions arelocated in the memory; and a processing unit connected to the bus,wherein the processing unit executes the set of instructions to define acluster domain for a clustering technology, wherein the cluster domainincludes at least one cluster node; associate at least one clusterresource with one of the cluster domain and the at least one clusternode; and associate at least one property with one of the cluster domainand the at least one cluster resource.
 16. The data processing system ofclaim 15, wherein the processing unit further executes the set ofinstructions to define a set of cluster domain operations, wherein theset of cluster domain operations operates on the at least cluster domainand the at least one cluster node; and define a set of cluster resourceoperations, wherein the set of cluster resource operations operates onthe at least one cluster resource and the at least one property.
 17. Thedata processing system of claim 16, wherein the processing unit furtherexecutes the set of instructions to associate one or more of the atleast one cluster resource with a resource group; define a set ofresource group properties for the resource group, wherein the set ofcluster resource operations operates on the resource group and the setof resource group properties.
 18. A computer program product comprisingcomputer executable instructions embodied in a computer usable mediumfor configuring, managing, and operating different clusteringtechnologies in a data center, the computer program product comprising:first instructions for defining a cluster domain for a clusteringtechnology, wherein the cluster domain includes at least one clusternode; second instructions for associating at least one cluster resourcewith one of the cluster domain and the at least one cluster node; andthird instructions for associating at least one property with one of thecluster domain and the at least one cluster resource.
 19. The computerprogram product of claim 18, further comprising: fourth instructions fordefining a set of cluster domain operations, wherein the set of clusterdomain operations operates on the at least cluster domain and the atleast one cluster node; and fifth instructions for defining a set ofcluster resource operations, wherein the set of cluster resourceoperations operates on the at least one cluster resource and the atleast one property.
 20. The computer program product of claim 19,further comprising: sixth instructions for associating one or more ofthe at least one cluster resource with a resource group; and seventhinstructions for defining a set of resource group properties for theresource group, wherein the set of cluster resource operations operateson the resource group and the set of resource group properties.